# 统计幸福指数
import pandas as pd

from getIncomeData import getIncomeData
from pyCharts import pyCharts


class happyIndex:
    def __init__(self):
        pass

    # 统计胸腹指数
    @staticmethod
    def getHappyIndex():
        # 获取幸福指数决定数据
        income_data = getIncomeData.processPerCapitaIncomeData()

        happy_index = {
            '湖北省': 20000,
            '湖南省': 20000,
            '广东省': 20000,
            '福建省': 20000,
            '江西省': 20000,
            '河南省': 20000,
            '山东省': 20000,
            '河北省': 20000,
            '山西省': 20000,
            '辽宁省': 20000,
            '黑龙江省': 20000,
            '安徽省': 20000,
            '江苏省': 20000,
            '浙江省': 20000,
            '海南省': 20000,
            '四川省': 20000,
            '贵州省': 20000,
            '云南省': 20000,
            '陕西省': 20000,
            '甘肃省': 20000,
            '青海省': 20000,
            '内蒙古自治区': 20000,
            '新疆维吾尔自治区': 20000,
            '西藏自治区': 20000,
            '宁夏回族自治区': 20000,
            '广西壮族自治区': 20000,
            '香港特别行政区': 20000,
            '澳门特别行政区': 20000,
            '台湾省': 20000,
            '北京市': 20000,
            '上海市': 20000,
            '天津市': 20000,
            '重庆市': 20000,
            '香港': 20000,
            '澳门': 20000,
            '台湾': 20000,
            '内蒙古': 20000,
            '新疆': 20000,
            '西藏': 20000,
            '宁夏': 20000,
            '广西': 20000,
            '吉林省': 20000,
        }  # 幸福指数

        # 计算幸福指数
        for province in income_data:
            for key in happy_index.keys():
                if province[0] in key:
                    happy_index[key] = province[1]

        # 生成地图和柱状图
        pyCharts.generate_happy_index_chart(happy_index)
        pyCharts.generateARankedBarChart(happy_index)
        print(happy_index)

        # 写入文件
        data = []
        for (key, value) in happy_index.items():
            temp = [key, value]
            data.append(temp)
        df = pd.DataFrame(data, columns=['省份', '幸福指数'])
        df.to_excel("Excel\\全国各省幸福指数.xlsx")
